﻿//////////////////////////////////////////////////////////////////////////////
//
// Copyright © 1998-2024 Glodon Company Limited.
//
// Licensed under the MIT License
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the “Software”),
// to deal in the Software without restriction, including without limitation
// the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
// sell copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
//////////////////////////////////////////////////////////////////////////////
#pragma once

#include "RpcSharedObject.h"
#include "OwnerPtr.h"

namespace gcmp
{
    //构件编辑器埋点所需用户信息
    class GM_INPLACE_EDIT_EXPORT UserDataSharedContent : public RpcSharedObject
    {
        DBOBJECT_DATA_BEGIN(gcmp, UserDataSharedContent, gcmp::RpcSharedObject, 1EA29080 - FC5D - 4F89 - 9113 - AF7B13C8505E, gminplaceedit)
            DATA(std::wstring, GlobalId)
            DATA(std::wstring, UserId)
            DATA(std::wstring, DeviceId)
            DATA(std::wstring, CloudTextureLibToken)
            DATA(std::wstring, CloudTextureLibId)
            DATA(std::wstring, CloudTextureLibProductCode)
        DBOBJECT_DATA_END

    public:
        const std::wstring& GetGlobalId() const { return this->GetGlobalId__(); }
        bool SetGlobalId(const std::wstring& globalId) { this->SetGlobalId__(globalId); return true; }

        const std::wstring& GetUserId() const { return this->GetUserId__(); }
        bool SetUserId(const std::wstring& userId) { this->SetUserId__(userId); return true; }

        const std::wstring& GetDeviceId() const { return this->GetDeviceId__(); }
        bool SetDeviceId(const std::wstring& deviceId) { this->SetDeviceId__(deviceId); return true; }

        const std::wstring& GetCloudTextureLibToken() const { return this->GetCloudTextureLibToken__(); }
        bool SetCloudTextureLibToken(const std::wstring& cloudTextureLibToken) { this->SetCloudTextureLibToken__(cloudTextureLibToken); return true; }

        const std::wstring& GetCloudTextureLibId() const { return this->GetCloudTextureLibId__(); }
        bool SetCloudTextureLibId(const std::wstring& cloudTextureLibId) { this->SetCloudTextureLibId__(cloudTextureLibId); return true; }

        const std::wstring& GetCloudTextureLibProductCode() const { return this->GetCloudTextureLibProductCode__(); }
        bool SetCloudTextureLibProductCode(const std::wstring& cloudTextureLibProductCode) { this->SetCloudTextureLibProductCode__(cloudTextureLibProductCode); return true; }
    };
}